//错误提示
function showError(id, msg) {
    $("#" + id + "Ok").hide();
    $("#" + id + "Err").html("<i></i><p>" + msg + "</p>");
    $("#" + id + "Err").show();
    $("#" + id).addClass("input-red");
}

//错误隐藏
function hideError(id) {
    $("#" + id + "Err").hide();
    $("#" + id + "Err").html("");
    $("#" + id).removeClass("input-red");
}

//显示成功
function showSuccess(id) {
    $("#" + id + "Err").hide();
    $("#" + id + "Err").html("");
    $("#" + id + "Ok").show();
    $("#" + id).removeClass("input-red");
}

//打开注册协议弹层
function alertBox(maskid, bosid) {
    $("#" + maskid).show();
    $("#" + bosid).show();
}

//关闭注册协议弹层
function closeBox(maskid, bosid) {
    $("#" + maskid).hide();
    $("#" + bosid).hide();
}

//注册协议确认
$(function () {
    //注册同意 点击事件
    $("#agree").click(function () {
        let ischeck = document.getElementById("agree").checked;
        if (ischeck) {
            $("#btnRegist").attr("disabled", false);
            $("#btnRegist").removeClass("fail");
        } else {
            $("#btnRegist").attr("disabled", "disabled");
            $("#btnRegist").addClass("fail");
        }
    });

    //追踪变量
    let phong_tag = 0;
    //手机号格式验证 失去焦点事件
    $("#phone").blur(function () {
        let phone = $.trim($(this).val());
        //不能为空
        if (phone == null || phone == "") {
            showError("phone", "请输入手机号码");
            return 0;
        }
        //长度11位
        if (phone.length != 11) {
            showError("phone", "请输入11位手机号码");
            return 0;
        }
        //手机格式
        if (!/^1[1-9]\d{9}$/.test(phone)) {
            showError("phone", "手机号码格式有误");
            return 0;
        }
        //手机号码是否被占用
        $.get("/web/loan/page/checkPhone", {phone: phone},
            function (data) {
                if (data.code == 0) {
                    showError("phone", data.message);
                    return 0;
                }
                if (data.code == 1) {
                    showSuccess("phone");
                    phong_tag = 1;
                    //未解决：完成验证提交
                    /*if (phong_tag == 1 && loginPassword_tag == 1 && btn_tag == 1) {
                        alert("提交数据");
                    }*/
                    return 1;
                }
            });
        phong_tag = 1;
        showSuccess("phone")
    });

    //追踪变量
    let loginPassword_tag = 0;
    //密码格式验证 失去焦点事件
    $("#loginPassword").blur(function () {
        let loginPassword = $.trim($("#loginPassword").val());
        //不能为空
        if (loginPassword == null || loginPassword == "") {
            showError("loginPassword", "密码不能为空");
            return 0;
        }
        //11 长度
        if (loginPassword.length < 6 || loginPassword.length > 20) {
            showError("loginPassword", "请输入6-20位密码");
            return 0;
        }
        //密码字符只可使用数字和大小写英文字母
        if (!/^[0-9a-zA-Z]+$/.test(loginPassword)) {
            showError("loginPassword", "密码字符只可用数字和大小写英文字母");
            return 0;
        }
        //密码应同时包含英文和数字
        if (!/^(([a-zA-Z]+[0-9]+)|([0-9]+[a-zA-Z]+))[a-zA-Z0-9]*/.test(loginPassword)) {
            showError("loginPassword", "密码应同时包含英文和数字");
            return 0;
        }
        showSuccess("loginPassword");
        loginPassword_tag = 1;
        return 1;
    });

    let messageCode_tag = 0;
    //短信码格式验证 失去焦点事件
    $("#messageCode").blur(function () {
        messageCode_tag = 0;
        let messageCode = $.trim($("#messageCode").val());
        //1.不能为空
        if (messageCode == null || messageCode == "") {
            showError("messageCode", "请输入验证码");
            return 0;
        }
        //2.应该为正整数
        if (!/^[0-9]*[1-9][0-9]*$/.test(messageCode)) {
            showError("messageCode", "验证码应为数字")
            return 0;
        }
        //3.长度：6位有效位
        if (messageCode.length != 6) {
            showError("messageCode", "请输入6位验证码");
            return 0;
        }
        showSuccess("messageCode")
        messageCode_tag = 1;
        return 1;
    });

    //获取短信验证码
    $("#messageCodeBtn").click(function () {
        $("#phone").blur();
        $("#loginPassword").blur();
        if (phong_tag == 1 && loginPassword_tag == 1) {
            //获取当前按钮对象
            let _this = $(this);
            //获取输入的手机号内容(去除空白内容和空格符)
            let phone = $.trim($("#phone").val());
            //使用倒计时插件
            if (!$(this).hasClass("on")) {
                $.ajax({
                    type: "get",
                    url: "/web/loan/page/messageCode",
                    data: "phone=" + phone,
                    success: function (msg) {
                        alert("【蜂鸟配送】饿了么蓝骑士提醒您，注册验证码是: " + msg.message);
                        //短信验证码发送成功后，开始60秒倒计时
                        $.leftTime(60, function (d) { //此处Bug不知道解决没：倒计时效果不显示，后来莫名其妙又显示了
                            if (d.status) {
                                _this.addClass("on");
                                _this.html((d.s == "00" ? "60" : d.s) + "秒后重新获取");
                            } else {
                                _this.removeClass("on");
                                _this.html("获取验证码");
                            }
                        });
                    }
                })
            }
        }
    });

    /*
    * 轮询机制：当主函数没有执行完之前，不会轮询Ajax数据结果，以保证数据状态稳定！
    * */

    //注册提交
    let btn_tag = 0;
    $("#btnRegist").click(function () {
        $("#phone").blur();
        $("#loginPassword").blur();
        $("#messageCode").blur();
        btn_tag = 1;
        //模拟事件触发
        if (phong_tag == 1 && loginPassword_tag == 1 && messageCode_tag == 1) {
            let phone = $.trim($("#phone").val());
            let loginPassword = $.trim($("#loginPassword").val());
            let messageCode = $.trim($("#messageCode").val());
            $.post("/web/loan/page/registerSubmit",
                {phone: phone, loginPassword: $.md5(loginPassword), messageCode: messageCode},
                function (data) {
                    if (data.code == 1) {
                        //跳转 实名认证
                        window.location.href = "/web/loan/page/realName";
                    }
                    if (data.code == 0) {
                        alert(data.message);
                    }
                });
        }
    });
});
